The present invention relates in general to methods and apparatus for arbitrating access to a communication bus on an integrated circuit and, in particular, to the processor local bus (PLB) used on system-on-a-chip (SOC) implementations.
On-chip bus systems that are used to communicate between a number of functional units use various methods to arbitrate among bus masters that manage bus access for the function or device. Relative to access to the bus, a bus master is the transfer initiator and a slave is the transfer receptor. A bus master actually controls the bus paths on which the address and control signals flow. Once these are set up, the flow of data bits goes between the transfer initiator and the receptor. There are various types of arbitration schemes: round robin, daisy chain, centralized, distributed, etc. Each of the arbitration schemes attempts to provide the various bus master devices access that is fair or access that is based on a predetermined fixed priority sequence. The round robin arbitration scheme is a “fair” method that continuously repeats a sequence, such as the polling of a series of bus masters, one after the other, over and over again searching for an access request. For the round robin arbitration method, a bus master (BM) that requires a certain amount of guaranteed bandwidth may be starved from gaining sufficient access to the bus if one or more other BMs are also continuously requesting a bus access. At best, the BM will only be guaranteed 100/N percent of the bus bandwidth where N represents the number of continuously requesting BMs coupled to the bus. In a fixed arbitration method, the potential for starvation will also occur if the BM that is requesting the bandwidth is relegated to a secondary priority when another BM which has a higher priority continuously requests access to the bus.
A fair arbitration scheme is desirable, but it would be advantageous to have an arbitration scheme that was also able to guarantee selected BMs a certain bandwidth while not wasting bus resources if these selected BMs were not requesting a bus access. It also would be useful if a bandwidth selected for a device could be changed dynamically if system utilization indicated that the bandwidth requirements had changed. It would also be desirable to have an arbitration scheme that allowed BMs not assigned a certain bandwidth to be guaranteed a chance to access the bus if it was determined that they were being “locked” out by the arbitration scheme.
The efficient utilization of a bus in a system, where the data traffic environment may be continuously changing, is key to realizing the maximum performance capability of the system. There is, therefore, a need for a method and apparatus for better managing access to a bus so that selected BMs may be assigned a certain amount of bus access and thus a certain bandwidth while preventing other bus masters without assigned bandwidth from being locked out.